🎯 AI画像生成の精度が劇的アップ!
JSON構造化プロンプト完全ガイド
〜「概念の滲み出し」を防いで、思い通りの画像を生成しよう〜
💡 前回の「3大流派」記事の続編!
「言語統制型」の真骨頂・JSON構造化プロンプトを徹底解説します
ラン!前回「言語統制型」と「視覚直感型」の話を聞いたじゃない?
はい、Nano Banana Proが「言語統制型」、SeeDreamやMidjourneyが「視覚直感型」という話でしたね。
でもNano Banana Proも画像を読み込めるんでしょ?それって視覚直感型と何が違うの?同じように見える気がするんだけど...
いい質問ですね!実は、同じ「画像を読み込む」でも、その解釈の仕方が根本的に違うんです。今日はその違いと、言語統制型の真骨頂「JSON構造化プロンプト」について詳しく解説しますね。
まず、言語統制型(Nano Banana Pro)と視覚直感型(Midjourney等)の「画像の読み方」の違いを説明しますね。
| 比較項目 | 言語統制型 (Nano Banana Pro) |
視覚直感型 (Midjourney等) |
|---|---|---|
| 画像の使い方 | 「言語化」の補助材料 | 「スタイルの直接転写」 |
| 処理の優先順位 | テキスト指示 > 画像 | 画像 ≧ テキスト指示 |
| たとえ話 | 設計士が資料を見て図面を引く | 画家が見本を見て模写する |
| 得意なこと | 論理的な構図、正確な配置 | 雰囲気の再現、画風の模倣 |
ふむふむ...要するに、同じ「画像を見る」でも、言語統制型は「これを参考に自分で考える」、視覚直感型は「これを真似する」ってことかしら?
まさにその通りです!Nano Banana Proは画像を見て「これは青い空と白い雲と...」と言語に変換してから処理します。だからテキストの指示と画像の情報を論理的に組み合わせられるんです。
一方、視覚直感型は画像の「見た目の雰囲気」をそのまま新しい画像に転写します。だから「この絵みたいな感じで」が得意なんですね。
なるほどね。どっちが優れてるってわけじゃなくて、得意分野が違うのね。
はい!そして言語統制型の強みを最大限に引き出すのが、今日のメインテーマ「JSON構造化プロンプト」なんです。
ちょっと待って!「JSON」って何なの?プログラマーの呪文みたいで怖いんだけど...
大丈夫ですよ!JSONは「情報を整理整頓するための書き方のルール」です。身近なもので例えると...
🍱 JSONは「幕の内弁当の仕切り」!
普通の文章(自然言語)は、仕切りのないタッパーに全部入れるようなもの。カレーとサラダとケーキを一緒に入れたら...味が混ざってカレー味のケーキができてしまいます。
JSONは、幕の内弁当の「プラスチックの仕切り」。ご飯エリア、おかずエリア、デザートエリアを物理的に分けることで、どれだけ揺らしても味が混ざりません!
あ!それ分かりやすい!つまり、AIに「ここからここまでは背景の話」「ここからはキャラの話」って区切りを教えてあげるってことね!
その通りです!実際のJSONを見てみましょう。波括弧 { } で囲んで、「項目名: 値」という形式で書きます。
{
"背景": "サイバーパンクな都市",
"キャラクター": {
"服装": "伝統的な和服",
"髪色": "黒"
}
}
※JSONとは「JavaScript Object Notation」の略で、データを構造化して記述するための書き方です。プログラミングでよく使われますが、AIへの指示にも活用できます。
へぇ!「背景」と「キャラクター」が別の部屋に入ってる感じね。これなら「サイバーパンク」が「和服」に混ざらないってわけだ!
そういえば前に「サイバーパンクな都市に和服の少女」って指示したら、着物が光ってネオンみたいになったことがあるのよ!なんでよ!
それが「概念の滲み出し(Concept Bleeding)」という現象です。AIが文章全体を見て、「サイバーパンク」という概念を「着物」にも適用してしまうことがあるんです。
※「概念の滲み出し」とは、プロンプト内のある要素の属性(色、スタイル、雰囲気など)が、意図しない別の要素にまで影響してしまう現象のことです。「属性の漏れ(Attribute Leakage)」とも呼ばれます。
❌ 自然言語で起きがちな問題
指示:「サイバーパンクな都市、和服の少女、ネオンの看板」
結果:LEDで光る着物、金属的な肌、和風の柄がホログラムに...😱
それよそれ!私が欲しかったのは「サイバーパンクな街に普通の和服の子がいる」絵なのに...
自然言語だと、AIは文章全体を「ひとかたまり」として処理するので、どの形容詞がどの名詞にかかるか曖昧になりやすいんです。JSONなら、「背景はサイバーパンク」「キャラの服は伝統的」と明確に分離できます。
よし!JSONの書き方を教えなさい!私もマスターするわ!
では、基本のルールから説明しますね。JSONには守るべきルールがいくつかあります。
📋 JSONの基本ルール
① 波括弧 { } で全体を囲む
JSONの「入り口」と「出口」。これがないとJSONとして認識されません。
② 項目名は "ダブルクォート" で囲む
"背景" のように、項目名は必ず " " で囲みます。
③ 値も基本は "ダブルクォート" で囲む
文字列は "サイバーパンク" のように囲みます。(数字はそのままでOK)
④ 項目と値は : で区切る
"項目名": "値" の形式。
⑤ 複数の項目は , で区切る
最後の項目の後ろには , を付けない(よくあるミス!)
う...ルールが多い...間違えそうだわ...
大丈夫です!Nano Banana Proは賢いので、多少の書き間違いは補完してくれることが多いですよ。完璧じゃなくても大丈夫です。
⚡ よくある注意点
・入れ子構造を使いすぎない
階層が深すぎると逆に混乱することがあります。2〜3階層くらいがちょうどいいですね。
・日本語でOK
Nano Banana Proは日本語を理解できるので、項目名も値も日本語で大丈夫です。
・冒頭に「意図」を伝える
JSONの前に「以下のJSON形式で画像を生成してください」と一言添えると、より確実に理解してもらえます。
では実際に、同じシーンを「自然言語」と「JSON」で比較してみましょう。
❌ Before:自然言語プロンプト
サイバーパンクな都市の背景、ネオンライト、雨、中央に伝統的な花柄の着物を着た美しい少女が古い日本の傘を持って立っている、黒髪、憂鬱な表情、高コントラスト、映画的なライティング
起きがちな問題:着物がネオンカラーになる、傘が透明なビニール傘になる、肌にネオンの色が反射しすぎる...
✅ After:JSON構造化プロンプト
以下のJSON形式で画像を生成してください:
{
"メタ指示": "属性の混同を防ぎ、各要素を独立して処理してください",
"画面設定": {
"アスペクト比": "16:9",
"画質": "8K、映画的",
"全体の雰囲気": "憂鬱、幻想的"
},
"照明": {
"全体照明": "暗めでムーディー",
"光源": [
{"種類": "ネオン看板", "色": "ピンクと青", "対象": "背景のみ"},
{"種類": "スポットライト", "色": "暖かい白", "対象": "キャラクターの顔"}
]
},
"被写体": [
{
"名前": "少女",
"外見": {
"服装": "伝統的な花柄の着物(赤と白)",
"服装の制約": "SF要素なし、純和風を維持",
"髪": "黒髪ロング",
"表情": "憂鬱"
},
"持ち物": "古い日本の番傘",
"画面内の位置": "中央"
},
{
"名前": "背景",
"スタイル": "サイバーパンク、ネオン看板、高層ビル",
"天候": "雨",
"画面内の位置": "背景(ぼかし)"
}
],
"色彩制約": {
"キャラクターの色": "自然な肌色、赤白の着物",
"背景の色": "ネオンブルー、パープル、黒"
}
}
すごい!「服装の制約: SF要素なし」とか「光源の対象: 背景のみ」とか、めちゃくちゃ細かく指定してるのね!
ポイントは「被写体」を配列(リスト)にして、「少女」と「背景」を完全に分けていることです。これでネオンの光が着物に漏れる心配がなくなります。
なるほど...「メタ指示」で最初に「混ぜるな」って言っておくのも賢いわね。
そうなんです。JSONを使えば、自然言語では難しかった「この属性はここだけに適用して」という細かい制御ができるようになります。
📝 コピペで使える基本テンプレート
{
"画面設定": {
"アスペクト比": "【16:9 / 1:1 / 9:16 など】",
"画質": "【高品質、8K など】",
"全体の雰囲気": "【明るい / 暗い / 幻想的 など】"
},
"被写体": [
{
"名前": "【メインキャラクター名】",
"外見": {
"服装": "【服の詳細】",
"髪": "【髪型・髪色】",
"表情": "【表情】"
},
"画面内の位置": "【中央 / 左 / 右】"
},
{
"名前": "背景",
"スタイル": "【背景の詳細】",
"画面内の位置": "背景"
}
]
}
JSONすごいじゃない!これで「光る着物問題」とおさらばできるわ!
今日のポイントをまとめますね。
📌 今日のまとめ
1. 言語統制型 vs 視覚直感型の違い
言語統制型は画像を「言語化」してから処理、視覚直感型は「見た目」を直接転写
2. JSONは「幕の内弁当の仕切り」
情報を明確に区切ることで、概念の滲み出しを防止
3. JSON基本ルール
{ } で囲む、項目名は " " で囲む、カンマで区切る
4. 実践のコツ
被写体を配列で分離、制約条件を明記、メタ指示で意図を伝える
さすがランね!JSONマスターへの道が見えてきたわ!
テンプレートをベースに、少しずつ自分好みにカスタマイズしていってくださいね。
よーし!早速試してみるわ!それじゃあ、またね!
また次回!お疲れ様でした!